1. Field of the Invention
The present invention generally relates to methods for measuring the performance of devices on a network, and in particular relates to passively calculating the time required for data packets to traverse a network device in a network.
2. Related Art
Comparison of network appliances is often characterized in terms of bandwidth and latency. For example, the performance of certain network appliances such as hubs, switches, routers, firewalls, and servers is often rated by the number of bytes per second the device can process. This type of bandwidth measurement is well defined and is conventionally easy to obtain.
On the other hand, latency measurements require a certain amount of interpretation and are therefore conventionally difficult to obtain without intrusive probes. This is particularly underscored when attempting to determine the amount of delay, in microseconds per byte, for data packets traveling across routers, firewalls, and servers.
FIG. 1 illustrates a conventional sniffer system as is typically used to measure the latency of a network device. In this system, data packets are sent from network 10 to network 20 through a unit under test (“UUT”) 30. A sniffer 40 is placed between network 10 and UUT 30 in order to measure the latency caused by UUT 30 for data packets traveling between network 10 and network 20. For example, UUT 30 may be a router or a bridge.
Data may travel from network 10 to network 20 in discrete units called data packets. For example, data packet DP1 may travel from network 10 to network 20 through UUT 30. In transit between network 10 and network 20, the sniffer 40 detects the transmission of DP1 and generates and stores a timestamp for DP1, relative to the internal clock associated with the sniffer 40.
The DP1 packet is then processed through UUT 30 and forwarded on toward network 20, which returns data packet DP2 in response. The response data packet DP2 is processed back through UUT 30 and forwarded on to network 10. The sniffer 40 detects the transmission of DP2 and generates and stores a timestamp for DP2, relative to the internal clock associated with the sniffer 40.
The sniffer 40 subsequently compares the stored DP1 timestamp (the time DP1 was detected) with the stored DP2 timestamp (the time DP2 was detected) to determine a latency. A drawback of this conventional sniffer system is that the system does not measure the latency produced solely by UUT 30 as outgoing data packet DP1 is processed and returned as incoming data packet DP2. An additional drawback of this conventional system is that the latency time for an entire network is measured rather than the latency time the UUT 30.
FIG. 2 illustrates a conventional two tap system for actively measuring the latency of a network device. Although this system employs two points of reference, which advantageously allows the system to isolate UUT 30, the system is not passive. In operation, tap 50 creates a test data packet DP3 and sends the test data packet DP3 over the network to tap 60. Due to the physical location of taps 50 and 60 relative to UUT 30, the test packet DP3 must travel through UUT 30. Although this system isolates UUT 30, it artificially increases the number data packets traveling on the network. Therefore, the latency measurement may not be accurate due to the artificially increased network traffic, introduced by the conventional two tap system.
An additional drawback of the conventional two tap system is that it requires two discrete units to measure the latency for a network appliance. The first unit, tap 50, is required to create the test data packet DP3, and the second unit, tap 60, is required to retrieve the test data packet DP3. This two discrete unit configuration is problematic in certain test scenarios, for example firewall performance testing, because the firewall may or may not allow the single test data packet DP3 to pass through.
Furthermore, even when test data packet DP3 is allowed to pass through unimpeded, there is little assurance that the test packet DP3 received the same handling and processing as native network data packets. For example, firewalls that were configured to allow test data packets DP3 to pass through may also be configured to give these same test data packets DP3 a higher processing priority. Thus, the integrity of the latency measurement may be called into question for the conventional two tap system.
Therefore, what is needed is a method and apparatus that overcomes these significant problems found in the conventional systems as described above.